extends Sprite2D

signal health_depleted

#成员变量位于脚本的顶部，在“extends”之后、函数之前
var speed = 600
var angular_speed = PI * 1
var health = 10


# 缩进敏感语言
func _init():
	print("hello world")

#以下划线开头的,是 Godot 的虚函数，也就是可以覆盖的与引擎通信的内置函数。
func _process(delta: float) -> void:
	var direction = 0
	if Input.is_action_pressed("ui_left"):
		direction = -1
	if Input.is_action_pressed("ui_right"):
		direction = 1
		
	rotation += angular_speed * delta * direction
#加rotated函数的话，就是自转加公转。不加就只有自转
	var velocity = Vector2.ZERO
	if Input.is_action_pressed("ui_up"):
		velocity = Vector2.UP.rotated(rotation) * speed
	if Input.is_action_pressed("ui_down"):
		velocity = - Vector2.UP.rotated(rotation) * speed
	position += velocity * delta


func _on_button_pressed() -> void:
	set_process(not is_processing())

func _on_button_pressed1() -> void:
	angular_speed += PI * 2

#get_node() 函数会查看 Sprite2D 的子节点，并按节点的名称获取节点。
#例如，如果在编辑器中将 Timer 节点重命名为“BlinkingTimer”，则必须将调用更改为 get_node("BlinkingTimer")。

func _ready():
	var timer = get_node("Timer")
	timer.timeout.connect(_on_timer_timeout)


func _on_timer_timeout() -> void:
	visible = not visible

# 一个模拟实例收到伤害的代码，使用自定义信号（并未使用）
func take_damage(amount):
	health -= amount
	if health <= 0:
		health_depleted.emit()
